package br.com.equus.entidade;

import static javax.persistence.GenerationType.IDENTITY;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.hibernate.envers.Audited;

import br.com.arquitetura.entidade.Entidade;

@Entity
@Table(name = "EQ_MANEJO_PRODUTO", catalog = "EQUUS")
@Audited
public class ManejoProduto extends Entidade<Integer> {

	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "ID_MANEJO_PRODUTO", unique = true, nullable = false)
	private Integer id;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_MANEJO_ANIMAL", referencedColumnName = "ID_MANEJO_ANIMAL", nullable = false)
	private ManejoAnimal manejoAnimal;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_PRODUTO", referencedColumnName = "ID_PRODUTO", nullable = false)
	private Produto produto;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_UNIDADE_MEDIDA", referencedColumnName = "ID_UNIDADE_MEDIDA", nullable = false)
	private UnidadeMedida unidadeMedida;

	@Column(name = "QTD_USO", nullable = false)
	private Double qtdUso;

	@Transient
	private String qtdUsoToString;

	public ManejoProduto() {
		// TODO Auto-generated constructor stub
	}

	public ManejoProduto(Integer id) {
		this.id = id;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public ManejoAnimal getManejoAnimal() {
		return manejoAnimal;
	}

	public void setManejoAnimal(ManejoAnimal manejoAnimal) {
		this.manejoAnimal = manejoAnimal;
	}

	public Produto getProduto() {
		return produto;
	}

	public void setProduto(Produto produto) {
		this.produto = produto;
	}

	public UnidadeMedida getUnidadeMedida() {
		return unidadeMedida;
	}

	public void setUnidadeMedida(UnidadeMedida unidadeMedida) {
		this.unidadeMedida = unidadeMedida;
	}

	public Double getQtdUso() {
		return qtdUso;
	}

	public void setQtdUso(Double qtdUso) {
		this.qtdUso = qtdUso;
	}

	public static long getSerialversionuid() {
		return serialVersionUID;
	}

	public String getQtdUsoToString() {
		return qtdUsoToString;
	}

	public void setQtdUsoToString(String qtdUsoToString) {
		this.qtdUsoToString = qtdUsoToString;
	}

}
